home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / jaz_clib.arc / JZSCREEN.H < prev    next >
Text File  |  1989-04-09  |  2KB  |  69 lines

  1. /*
  2. ┌────────────────────────────────────────────────────────────────────────────┐
  3. │ Title   : jzwindow.h                                 │
  4. │ Purpose : Define structures, defs, and global variables for window system  │
  5. │                                         │
  6. │    Written by Jack Zucker - 75766,1336    301-794-5950  on 1/15/85      │
  7. └────────────────────────────────────────────────────────────────────────────┘
  8. */
  9.  
  10. /* misc window declarations */
  11.  
  12. struct    twindow
  13. {
  14.   int        *buf;        /* buffer of chars and attributes */
  15.   char        row;        /* cursor row position          */
  16.   char        col;        /* cursor column position      */
  17.   unsigned char attr;        /* attribute (color) of window      */
  18.   unsigned
  19.   char number;            /* window identifier byte      */
  20.   int        row1,
  21.         col1,
  22.         row2,
  23.         col2;        /* global window coordinates      */
  24.   struct twindow *next;     /* pointer to next window struct  */
  25. };
  26. #define TWINDOW struct twindow
  27.  
  28. #define BLACK 0
  29. #define BLUE  1
  30. #define GREEN 2
  31. #define CYAN 3
  32. #define RED 4
  33. #define MAGENTA 5
  34. #define BROWN 6
  35. #define LIGHTGRAY 7
  36. #define DARKGRAY 8
  37. #define LIGHTBLUE 9
  38. #define LIGHTGREEN 0x0A
  39. #define LIGHTCYAN 0x0B
  40. #define LIGHTRED 0x0C
  41. #define LIGHTMAGENTA 0x0D
  42. #define YELLOW 0x0E
  43. #define WHITE 0x0F
  44. #define BLINK 0x80
  45.  
  46. struct theader
  47. {
  48.   int        length;     /* current length of a linked list */
  49.   TWINDOW      *first;
  50.   TWINDOW      *last;
  51. } ;
  52. #define THEADER struct theader
  53.  
  54.             /* convert row and column to absolute offset of screen */
  55. #define SCROFS(_y,_x) (unsigned) (_y * 160 + (_x << 1))
  56.             /* convert seperate foreground and background to attr  */
  57. #define MKATTR(_b,_f) (unsigned char) (_b << 4 + _f)
  58.  
  59.             /* return a col position to center a given string */
  60. #define CNTCOL(_s,_w) ((_w - strlen(_s)) >> 1)
  61.  
  62. #if LINT_ARGS
  63. TWINDOW *jzopnwnd(),*jzappend(),*wsearch();
  64. TWINDOW *jzcpywnd(TWINDOW *,int);
  65. THEADER *jzgethdr();
  66. void jzclrwnd(TWINDOW *,int);
  67. #endif
  68.  
  69.